const express = require('express')
const db = require('./db.js')



exports.getlunbotu = (req, res) => {
	let sql = 'select * from shoppinglunbotu'
	db.base(sql, null, (results) => {
		if (results) {
			// console.log(results)
			// res.json({ user: 'tobi' });
			res.json(results);
		}
	})
}
//根据id 获取一项分类信息
exports.getcategoryList = (req, res) => {
	let data = req.params.id
	let sql = ""
	if (data == 0) {
		sql = "select * from categoryList "
	} else {
		sql = "select * from categoryList where id =" + data
	}
	db.base(sql, null, (results) => {
		if (results) {
			res.json(results)
		} else {
			res.send("查询失败")
		}
	})
}
//获取全部分类信息（前十一项）  
exports.getCategoryListAll = (req, res) => {
	
	let sql = "select * from categoryList limit 11 "

	db.base(sql, null, (results) => {
		if (results) {
			res.json(results)
		} else {
			res.send("查询失败")
		}
	})
}
//获取某一类的具体所有课程信息
 //根据提供的分类 ，根据你一次性要获取多少个数据（count） 返回数据 
 //后台请求完整路径/api/getcategoryContent/?categories=categories&count=count&countPage=countPage
exports.getcategoryContent = (req , res) =>{
	// console.log("1111111111111")
	let info =req.query
	// console.log("打印一下requery"+JSON.stringify(info))
	// let data= [info.categories]
	let categories = info.categories
	let count = info.count
	let countPage = info.countPage
	let sql =""
	// console.log("打印一下分页数目"+count +"---打印一下在第几页"+countPage)
	if(countPage == 1){
		//根据时间 取出count 个
		sql="SELECT * FROM allclass where categories= '" +categories+"' ORDER BY creatTime DESC LIMIT "+count
	}else{
		sql ="SELECT * FROM allclass ORDER BY creatTime DESC LIMIT "+((countPage-1)*count)+", "+count
	}
	
	// let sql = "select * from allclass where categories= ? "
	db.base(sql, null, (results) => {
		if (results) {
			res.json(results)
		} else {
			res.send("查询失败")
		}
	})
	
}
//根据课程id ，获取该课程详细信息
exports.getContent =(req ,res)=>{
	let data =[req.params.id]
	let sql ="select id,title,img,price from allclass where id= ?"
	
	db.base(sql , data ,(results)=>{
		if(results){
			res.json(results)
			
		}else{
			res.rend("课程信息查询失败")
		}
	})
}
//登录验证
exports.login =(req , res) =>{
	// post请求获取参数 admin password
	// console.log("JSON:"+JSON.stringify(req.body))
	let admin= req.query.admin;
	//-------------测试数据区
	// console.log("-----------cs:"+JSON.stringify(req.query))
	//--------------
	let password= req.query.password;
	console.log("后台接受到的数据：admin ：  "+ admin+" password ：  "+password)
	//查询数据库用户表
	let sql = "select * from adminpay"
	db.base(sql ,null ,(results)=>{
		//对查询结果for循环  判断 用户名 和 密码 是否同时正确 ，再返回判断条件 flag
		for(var i= 0 ; i<results.length ;i++ ){
			if(results[i].adminPhone  == admin && results[i].password == password){
				res.json({flag:true})
				return 
			}
		}
		res.json({flag:false})
		// console.log("数据库中的数据："+results[3])
	})
	
}

//注册账号  
exports.register =(req ,res)=>{
	// let param =[req.params.id]
	//获取数据的方式
	// console.log(JSON.stringify(req.query)+"=========")
	// console.log(JSON.stringify(req.params)+"---------------")
	// console.log(JSON.stringify(req.body))
	let sql = "insert into adminpay set ?"
	let data ={
		adminPhone:req.query.admin,
		password:req.query.password
	}
	
	db.base(sql , data ,(results)=>{
		// console.log(results.affectedRows)
		if(results.affectedRows == 1){
			res.json({'flag':1})
			return
		}
		res.json({'flag':0})
	})
}

//需要一个提供最近更新的课程（根据时间） 需要查询10个   
//根据 提供的数字 1 =》1-10 条数据 ，2 =》 11-20条的数据

exports.getRecently=(req ,res)=>{
	let count = req.params.count  //分页  
	// console.log("打印了分页信息"+count+typeof count)
	let sql =""
	//根据分页信息，拼接sql语句
	if( count == 1){
		sql ="SELECT * FROM allclass ORDER BY creatTime DESC LIMIT 10"
	}else{
		sql ="SELECT * FROM allclass ORDER BY creatTime DESC LIMIT "+((count-1)*10)+", 10"
		// console.log("打印一下计算规则"+(count-1*10)) //根据四则运算 优先级  +- 为一级 */为二级 先乘除 后加减
		// console.log("打印一下sql语句" +sql)
	}
	
	db.base(sql , null ,(results)=>{
		if(results){
			res.json(results)
		}else{
			console.log("获取前10条数据失败")
		}
	})
}

//拿到所有的课程  ，为搜索列表准备数据
exports.getAllClass=(req,res)=>{
	
	let sql = "select * from allclass"
	
	db.base(sql , null , (results)=>{
		if(results){
			res.json(results)
		}else{
			console.log("获取全部课程失败 getAllClass")
		}
	})
}

//异步回调
exports.getnotifyContent = (req ,res)=>{
	console.log("调用接口成功")
	// console.log(JSON.stringify(req.query)+"=========")
	
	
	let info1 = req.query.attch //获取到附加信息值 string
	let info = info1.replace(/&quot;/g, ""); //q去掉引号
	// attch.replace(/&quot;/g, "")
	// console.log("麻烦打印一下"+info)
	
	let array = info.split(","); //把附加信息值转化为数组
	let id = array[0]//拿到用户号码
	array.splice(0,1) //移除用户号码 ，从下标为1 的开始 移除一个元素
	let attch = array.toString() //拿到我们需要的attch值（以前购买的+现在的购买的）
	console.log("这里打印一下的数组"+array) //array[0]为用户账号  ， array[1] 为客户购买的id ,附加值 attch之前的值
	console.log("打印id："+id+",,,,,打印attch:"+attch)
	// sql = "UPDATE adminpay SET attch="+attch+" WHERE ="+id
	sql ="UPDATE adminpay SET attch='"+attch+"' WHERE adminPhone="+id
	//根据上面数组的值   修改数据库的attch  
	let data= [attch,id]
	db.base(sql ,null, (results)=>{//更新数据库的attch的值
		if(results){
			// console.log(results)
			console.log("更新attch购买课程成功")
		}else{
			console.log("更新attch购买课程失败")
		}
	})
	
	
	res.json("success")
	// req.query.attch
	// "attch":"'11111111111',104"
	//attch 是创建支付订单接口 时候 ，添加的信息  ，我添加的是商品的id
	//attch  获取到商品的 id  客户付款成功后,先取出数据库的客户购买课程的信息 ,再把attch的id 加入到其中  再以字符串的形式存入数据库
	// if(info.state == 1){  //state付款状态  如果为1 ，是成功付款    attch":"&quot;11111111111&quot;,104"
	// 	//先查询 attch 
	// 	let sql = "UPDATE payment.adminpay SET attch = ? WHERE `adminPhone` = ?" 
	// }else{
	// 	console.log("回调失败")
	// }
	
	// {"amount":"1","orderNo":"v21483531284325577","actualPayAmount":"1.0","payTime":"2020-09-01 00:03:42",
	// "platformOrderNo":"1300464227978313728","merchantNum":"1297841223901380608",
	// "sign":"bad47c1392aa535555dac1b7bbeb35df","attch":"&quot;11111111111&quot;,104&quot;0&quot;","state":"1"}=========
	
}
//得到用户信息
exports.getAdminContent=(req,res)=>{
	let sql ="select attch,isVip from adminpay WHERE adminPhone =?"
	let data =[req.query.adminPhone]
	console.log(data[0])
	
	db.base(sql , data ,(results)=>{
		if(results){
			res.json(results)
		}else{
			console.log("获取前10条数据失败")
		}
	})
}
